package com.dao;

import com.entity.ChatUser;
import com.entity.Message;

import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ChatDao {
  // 查看全部未读消息
  int selectUnreadCounts(@Param("userId") String userId);

  // 查看对某人的未读消息
  int selectUnreadCount(@Param("myUserId") String myUserId, @Param("hisUserId") String hisUserId);

  // 查看消息是否是自己发的
  boolean selectMine(@Param("myUserId") String myUserId, @Param("hisUserId") String hisUserId);
  // 获取聊天列表
  List<ChatUser> selectChatList(@Param("userId") String userId);

  // 获取消息列表
  List<Message> selectMessageList(
      @Param("myUserId") String myUserId,
      @Param("hisUserId") String hisUserId,
      @Param("mesgStartIndex") int mesgStartIndex,
      @Param("mesgNum") int mesgNum);

  // 当获取和某个用户的聊天列表后，就将他给自己发的消息的状态都设置为已查看
  void updateMesgsStatus(@Param("myUserId") String myUserId, @Param("hisUserId") String hisUserId);

  // 发送消息
  int insertMessage(
      @Param("myUserId") String myUserId,
      @Param("hisUserId") String hisUserId,
      @Param("content") String content);
}
